UIlabel的基本用法
- 创建 label
UILabel * label = [[UILabel alloc]init];
- 设定位置与大小
label.frame = CGRectMake(100, 0, 320, 40);
设置字体和大小
[label setFont:[UIFont fontWithName:@"Helvetica" size:20.0]]; label.font = [UIFont systemFontOfSize:24.0]; //[label setFont:[UIFont systemFontOfSize:24.0]];
- 行数,只有设为0才可以自适应
[label setNumberOfLines:0];
- 背景色
[label setBackgroundColor:[UIColor clearColor]];
- 阴影大小 和 阴影颜色
label.shadowColor = [UIColor darkGrayColor]; label.shadowOffset = CGSizeMake(1.0,1.0);
- 设置字体:粗体,正常的是 SystemFontOfSize
label.font = [UIFont boldSystemFontOfSize:20];
- 设置文字位置
label.textAlignment = NSTextAlignmentRight;
- 设置字体大小适应label宽度
label.adjustsFontSizeToFitWidth = YES;
- 设置高亮
label.highlighted = YES; label.highlightedTextColor = [UIColor orangeColor];
- 设置是否能与用户进行交互
label.userInteractionEnabled = YES;
- 设置label中的文字是否可变,默认值是YES
label.enabled = NO;
设置文字过长时的显示格式
label.lineBreakMode = UILineBreakModeMiddleTruncation;//截去中间 /* typedef enum { UILineBreakModeWordWrap = 0, UILineBreakModeCharacterWrap, UILineBreakModeClip,//截去多余部分 UILineBreakModeHeadTruncation,//截去头部 UILineBreakModeTailTruncation,//截去尾部 UILineBreakModeMiddleTruncation,//截去中间 } UILineBreakMode; */
如果adjustsFontSizeToFitWidth属性设置为YES,这个属性就来控制文本基线的行为
label.baselineAdjustment = UIBaselineAdjustmentNone; /* typedef enum { UIBaselineAdjustmentAlignBaselines, UIBaselineAdjustmentAlignCenters, UIBaselineAdjustmentNone, } UIBaselineAdjustment; */
UILabel 自适应高度
- 法一(系统方法)
NSString *text = @" 才能成为今年春晚才能从你去玩吧草桥结拜辞去调兵遣将吃不起吃不起维持年轻哦长宁区哦长宁传播去传播企鹅翅膀去诶彼此企鹅并从企鹅传播企鹅出版企鹅哦吧从俄情报从鹅去传播企鹅次2"; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 40, 300, 0)]; label.backgroundColor=[UIColor grayColor]; label.font=[UIFont boldSystemFontOfSize:14]; [label setNumberOfLines:0]; label.text=text; [label sizeToFit];
法二(自己计算)
#define WIDTH [UIScreen mainScreen].bounds.size.width NSString *text = @" 才能成为今年春晚才能从你去玩吧草桥结拜辞去调兵遣将吃不起吃不起维持年轻哦长宁区哦长宁传播去传播企鹅翅膀去诶彼此企鹅并从企鹅传播企鹅出版企鹅哦吧从俄情报从鹅去传播企鹅次2"; UILabel *label = [[UILabel alloc] init]; label.backgroundColor=[UIColor grayColor]; label.font=[UIFont boldSystemFontOfSize:14]; [label setNumberOfLines:0]; label.text=text; CGSize size=CGSizeMake(WIDTH-20, MAXFLOAT); CGSize labelsize = [text boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin |NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:label.font} context:nil].size; [label setFrame:CGRectMake(10, 40, labelsize.width, labelsize.height)];
- 法一(系统方法)